#include <mockcpp/mockcpp.hpp>
#include <testngpp/testngpp.hpp>
#include <Rectangle.h>

USING_MOCKCPP_NS
USING_TESTNGPP_NS

FIXTURE(Rectangle)
{
	TEST(should be able to calculate the area of the rectangle(2,3))
	{
		Rectangle rectangle(2,3);

		ASSERT_EQ(6.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2,3))
	{
		Rectangle rectangle(2,3);

		ASSERT_EQ(10.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(2.0,3.0))
	{
		Rectangle rectangle(2.0,3.0);

		ASSERT_EQ(6.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2.0,3.0))
	{
		Rectangle rectangle(2.0,3.0);

		ASSERT_EQ(10.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(2.0,3))
	{
		Rectangle rectangle(2.0,3);

		ASSERT_EQ(6.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2.0,3))
	{
		Rectangle rectangle(2.0,3);

		ASSERT_EQ(10.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(2,3.0))
	{
		Rectangle rectangle(2,3.0);

		ASSERT_EQ(6.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2,3.0))
	{
		Rectangle rectangle(2,3.0);

		ASSERT_EQ(10.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(2.0))
	{
		Rectangle rectangle(2.0);

		ASSERT_EQ(4.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2.0))
	{
		Rectangle rectangle(2.0);

		ASSERT_EQ(8.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(2))
	{
		Rectangle rectangle(2);

		ASSERT_EQ(4.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(2))
	{
		Rectangle rectangle(2);

		ASSERT_EQ(8.00, rectangle.getRectanglePerimeter());
	}
	TEST(should be able to calculate the area of the rectangle(4,5))
	{
		Rectangle rectangle(2,3);
		rectangle.setWidth(4);
		rectangle.setHeight(5);

		ASSERT_EQ(20.00, rectangle.getRectangleArea());
	}

	TEST(should be able to calculate the perimeter of the rectangle(3,4))
	{
		Rectangle rectangle(2.0,3.0);
		rectangle.setWidth(3.0);
		rectangle.setHeight(4.0);

		ASSERT_EQ(14.00, rectangle.getRectanglePerimeter());
	}
};
